home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2009 September / maximum-cd-2009-09.iso / DiscContents / Firefox Setup 3.0.7.exe / nonlocalized / chrome / toolkit.jar / content / mozapps / extensions / about.js next >
Encoding:
JavaScript  |  2006-07-21  |  4.1 KB  |  110 lines

  1. //@line 37 "/e/fx19rel/WINNT_5.2_Depend/mozilla/toolkit/mozapps/extensions/content/about.js"
  2.  
  3. function EM_NS(aProperty)
  4. {
  5.   return "http://www.mozilla.org/2004/em-rdf#" + aProperty;
  6. }
  7.  
  8. var gExtensionID = "";
  9. var gExtensionDB = null;
  10.  
  11. function init()
  12. {
  13.   gExtensionID = window.arguments[0];
  14.   gExtensionDB = window.arguments[1];
  15.  
  16.   var extensionsStrings = document.getElementById("extensionsStrings");
  17.   
  18.   var rdfs = Components.classes["@mozilla.org/rdf/rdf-service;1"]
  19.                        .getService(Components.interfaces.nsIRDFService);
  20.  
  21.   var extension = rdfs.GetResource(gExtensionID);                       
  22.                 
  23.   // Name       
  24.   var nameArc = rdfs.GetResource(EM_NS("name"));
  25.   var name = gExtensionDB.GetTarget(extension, nameArc, true);
  26.   name = name.QueryInterface(Components.interfaces.nsIRDFLiteral).Value;
  27.   // Version
  28.   var versionArc = rdfs.GetResource(EM_NS("version"));
  29.   var version = gExtensionDB.GetTarget(extension, versionArc, true);
  30.   version = version.QueryInterface(Components.interfaces.nsIRDFLiteral).Value;
  31.   // Description
  32.   var descriptionArc = rdfs.GetResource(EM_NS("description"));
  33.   var description = gExtensionDB.GetTarget(extension, descriptionArc, true);
  34.   if (description)
  35.     description = description.QueryInterface(Components.interfaces.nsIRDFLiteral).Value;
  36.   // Home Page URL
  37.   var homepageArc = rdfs.GetResource(EM_NS("homepageURL"));
  38.   var homepage = gExtensionDB.GetTarget(extension, homepageArc, true);
  39.   if (homepage) {
  40.     homepage = homepage.QueryInterface(Components.interfaces.nsIRDFLiteral).Value;
  41.     // only allow http(s) homepages
  42.     var scheme = "";
  43.     var uri = null;
  44.     try {
  45.       uri = makeURI(homepage);
  46.       scheme = uri.scheme;
  47.     } catch (ex) {}
  48.     if (uri && (scheme == "http" || scheme == "https"))
  49.       homepage = uri.spec;
  50.     else
  51.       homepage = null;
  52.   }
  53.     
  54.   // Creator
  55.   var creatorArc = rdfs.GetResource(EM_NS("creator"));
  56.   var creator = gExtensionDB.GetTarget(extension, creatorArc, true);
  57.   if (creator)
  58.     creator = creator.QueryInterface(Components.interfaces.nsIRDFLiteral).Value;
  59.   
  60.   document.title = extensionsStrings.getFormattedString("aboutWindowTitle", [name]);
  61.   var extensionName = document.getElementById("extensionName");
  62.   extensionName.setAttribute("value", name);
  63.   var extensionVersion = document.getElementById("extensionVersion");
  64.   extensionVersion.setAttribute("value", extensionsStrings.getFormattedString("aboutWindowVersionString", [version]));
  65.   
  66.   var extensionDescription = document.getElementById("extensionDescription");
  67.   extensionDescription.appendChild(document.createTextNode(description));
  68.   
  69.   var extensionCreator = document.getElementById("extensionCreator");
  70.   extensionCreator.setAttribute("value", creator);
  71.   
  72.   var extensionHomepage = document.getElementById("extensionHomepage");
  73.   if (homepage) {
  74.     extensionHomepage.setAttribute("homepageURL", homepage);
  75.     extensionHomepage.setAttribute("tooltiptext", homepage);
  76.   }
  77.   else
  78.     extensionHomepage.hidden = true;
  79.     
  80.   var sectionProps = [["developersBox", "developer", "extensionDevelopers"],
  81.                       ["translatorsBox", "translator", "extensionTranslators"],
  82.                       ["contributorsBox", "contributor", "extensionContributors"]];
  83.  
  84.   for (var i = 0; i < sectionProps.length; ++i) {
  85.     var node = document.getElementById(sectionProps[i][0]);
  86.     var arc = rdfs.GetResource(EM_NS(sectionProps[i][1]));
  87.     var targets = gExtensionDB.GetTargets(extension, arc, true);
  88.     if (!(targets.hasMoreElements()))
  89.       document.getElementById(sectionProps[i][2]).hidden = true;
  90.     else {
  91.       while (targets.hasMoreElements()) {
  92.         var literalValue = targets.getNext().QueryInterface(Components.interfaces.nsIRDFLiteral).Value;
  93.         var label = document.createElement("label");
  94.         label.setAttribute("value", literalValue);
  95.         label.setAttribute("class", "contributor");
  96.         node.appendChild(label);
  97.       }
  98.     }
  99.   }
  100.     
  101.   var acceptButton = document.documentElement.getButton("accept");
  102.   acceptButton.label = extensionsStrings.getString("aboutWindowCloseButton");
  103. }
  104.  
  105. function loadHomepage(aEvent) {
  106.   window.close();
  107.   window.opener.openURL(aEvent.target.getAttribute("homepageURL"));
  108. }
  109.  
  110.